/**
 * @file
 * @author Filipe Mutz
 *
 * @section DESCRIPTION
 * This file contains the definition of a lot of distributions
 */

#ifndef DISTRIBUTION_H_
#define DISTRIBUTION_H_

#include <vector>
#include "global.h"

using namespace std;
using namespace brain::global;

namespace brain
{
	namespace distribution
	{
		class Distribution
		{
			public:
				Distribution();
				virtual ~Distribution();
				virtual vector<Point> generate(int num_points) = 0;
		};

		class GaussianDistribution: public Distribution
		{
			Point _deviation;
			Point _center;

			public:

				GaussianDistribution(Point center, double deviation);
				GaussianDistribution(Point center, Point deviation);

				~GaussianDistribution();

				vector<Point> generate(int num_points);
		};
	}
}


#endif
